Virtual machine technology, or virtualization, is rapidly emerging to become an integral component of future information technology (IT) systems. As referred herein, and as understood in the art, information technology, or IT, encompasses all forms of technology, including but not limited to the design, development, installation, and implementation of hardware and software information or computing systems and software applications, used to create, store, exchange and utilize information in its various forms including but not limited to business data, conversations, still images, motion pictures and multimedia presentations technology and with the design, development, installation, and implementation of information systems and applications. IT distributed environments may be employed, for example, by Internet Service Providers (ISP), web merchants, and web search engines to provide IT applications and services to users.
Virtual machine technology provides three primary features. It allows multiple operating environments to reside on the same physical machine; it provides fault and security isolation which can be tied to guaranteed service levels; and it allows the entire state of the “machine”—memory, disk images, I/O state, etc.—to be captured, saved, and potentially reused. In turn, these three features of virtualization enable applications such as server consolidation, resource provisioning, software delivery, security, availability, debugging, simulation, etc. FIG. 1 illustrates a typical set-up for providing virtualization in a system 100, which is a physical machine that includes both hardware and software. Examples of a system 100 include but are not limited to a desktop or laptop personal computer (PC), a server, a mainframe. The system hardware is represented by the hardware platform 140 having one or more processors 142, one or more memory devices 144, and one or more I/O devices 146 arranged and in communication with each other in a manner known in the art. The system software includes a software virtualization layer 130, also called a virtual machine monitor or hypervisor, to simultaneously support multiple operating system instances 114 and 124 in multiple virtual machines or domains 110 and 120. These can be multiple instances of the same operating system or of different operating systems. The virtualization layer 130 is operable to share the computing resources of the underlying hardware platform 140 between the multiple operating system instances. A number of hardware- and software-based virtualization solutions are commercially available. However, these solutions focus on the partitioning, isolation, and encapsulation features of virtual machines and their use for different applications mainly in the context of a specific processor architecture.